💡 AI 인사이트

🤖 AI가 여기에 결과를 출력합니다...

댓글 커뮤니티

쿠팡이벤트

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

검색

    로딩 중이에요... 🐣

    [코담] 웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트

    05 데이터베이스 레코드 추가하기 | ✅ 편저: 코담 운영자

    Django 튜토리얼 #5 - 데이터베이스 레코드 추가하기


    🔗 소스


    1. 강의 목표

    • Django shell을 이용해 모델 클래스(Tour)의 객체를 생성하고 DB에 레코드로 저장하는 방법을 익힌다.
    • __str__ 메서드를 추가해 객체의 출력 형태를 사용자 친화적으로 개선한다.

    2. Django Shell 실행

    python manage.py shell
    
    • Django의 shell은 Python 또는 IPython 환경에서 실행 가능하며, ORM을 직접 테스트하고 조작하는 데 유용함

    3. 모델 클래스 (models.py)

    from django.db import models
    
    # Tour 모델을 정의합니다.
    class Tour(models.Model):
        # 출발 국가, 도착 국가, 숙박 일수, 가격 정보를 저장합니다.
        origin_country = models.CharField(max_length=64)       # 출발 국가
        destination_country = models.CharField(max_length=64)  # 도착 국가
        number_of_nights = models.IntegerField()               # 숙박 일수
        price = models.IntegerField()                          # 여행 가격
    
        # Tour 인스턴스를 문자열로 표현할 때 사용됩니다.
        def __str__(self):
            return (f"ID:{self.id}: From {self.origin_country} To {self.destination_country}, {self.number_of_nights} nights costs ${self.price}")
    
    

    ✅ 코드 설명

    • origin_country, destination_country: 여행 출발지와 목적지 (문자열)
    • number_of_nights: 숙박 일수 (정수)
    • price: 투어 가격 (정수)
    • __str__ 메서드: Django Shell 또는 admin 페이지에서 객체 출력 시 사용자 친화적인 형식으로 표시됨
      • 예시: ID:1: From Japan To China, 10 nights costs $1500

    4. Tour 객체 생성 및 저장

    from asiatoursagency.models import Tour
    
    # 첫 번째 객체
    t1 = Tour(
        origin_country="Japan",
        destination_country="China",
        number_of_nights=10,
        price=1500
    )
    t1.save()
    
    # 두 번째 객체
    t2 = Tour(
        origin_country="Vietnam",
        destination_country="South Korea",
        number_of_nights=15,
        price=20500
    )
    t2.save()
    
    • .save()를 호출해야 DB에 실제 저장됨
    • 저장 전: t2.idNone, 저장 후 자동으로 ID가 부여됨

    5. 저장된 데이터 확인

    Tour.objects.all()
    

    출력 결과:

    <QuerySet [
      <Tour 1: From Japan To China, 10 nights costs $1500>,
      <Tour 2: From Vietnam To South Korea, 15 nights costs $20500>
    ]>
    
    • __str__() 메서드 덕분에 출력이 명확하고 직관적으로 보임

    다음 강의 예고

    • 웹 페이지에서 템플릿을 통해 데이터베이스에 있는 내용을 출력하는 실습 진행 예정
    TOP
    preload preload